# Contents
#
# <プラグイン概要>
# ページ内の目次を作成する
# タイトルに設定されたアンカーを拾う
#
# <使用方法>
# #contents
#
module WikiPlugin::Contents::Function

  def init
  end
  def inline
  end

  def convert
    contents = []
    @content.body.each_line do |line|
      if line =~  /^(\*{1,3})(.*)\[#(.*)\]/ then
        contents << {:nest=>$1.size, :title=>$2, :anchor=>$3}
      end
    end

    last_nest = 0
    contents_menu = "<div style=\"margin-bottom:10px;\">\n"

    contents.each do |content|
      if last_nest < content[:nest] then
        (content[:nest] - last_nest).times do
          contents_menu += "<ul>\n"
        end
      elsif content[:nest] < last_nest then
        (last_nest - content[:nest]).times do
          contents_menu += "</ul>\n"
        end
      end
      contents_menu += "<li><a href=\"##{content[:anchor]}\">#{content[:title]}</a></li>\n"
      last_nest = content[:nest]
    end

    last_nest.times do
      contents_menu += "</ul>\n"
    end
    contents_menu += "</div>\n"

    return contents_menu
  end
end
